//var let const

/**
 * 1:var 定义的变量存在变量提升，可以在定义之前就调用，let和const必须先定义再使用，否则会报错--var可以重复定义一个变量 let和const不可以
 * 2：var和let定义的变量的值可以修改，const定义的变量的值只能赋值一次，赋值后就不能修改（变量对应的内存地址不能修改，如果是对象的话可以修改对象里面的属性）
 * 3: 全局作用域下，var定义的变量可以在window下找到，let和const不能
 * 4：let和const受块级作用域影响，在块级作用域下会生成一个独立的作用域，不会影响到外部作用域，类似if语句中，var定义的变量外部可以访问，而let const不可以
*/